home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / news / inn1.000 / inn1.4sec-linux-src.tar / inn / site / do-subst.sh next >
Linux/UNIX/POSIX Shell Script  |  1993-01-29  |  2KB  |  85 lines

  1. #! /bin/sh
  2. ##  $Revision: 1.3 $
  3. ##  Run subst over a list of files.  Get files in and out of source control
  4. ##  if present.
  5.  
  6. ##  Assume no source control.
  7. MODE=none
  8. PLAIN="$*"
  9. CONTROLLED=
  10. BASEDIRNAME=`basename \`pwd\``
  11.  
  12. if [ -d RCS -a ! -d SCCS ] ; then
  13.     # Find out which files are under RCS control.
  14.     MODE=rcs
  15.     PLAIN=
  16.     for I
  17.     do
  18.     if [ -f RCS/${I},v ] ; then
  19.         CONTROLLED="${CONTROLLED} ${I}"
  20.     else
  21.         PLAIN="${PLAIN} ${I}"
  22.     fi
  23.     done
  24.     test -n "${CONTROLLED}" && co -l -q ${CONTROLLED}
  25. fi
  26. if [ -d SCCS -a ! -d RCS ] ; then
  27.     # Find out which files are under SCCS control.
  28.     MODE=sccs
  29.     PLAIN=
  30.     for I
  31.     do
  32.     if [ -f SCCS/s.${I} ] ; then
  33.         CONTROLLED="${CONTROLLED} ${I}"
  34.     else
  35.         PLAIN="${PLAIN} ${I}"
  36.     fi
  37.     done
  38.     test -n "${CONTROLLED}" && sccs get -e ${CONTROLLED}
  39. fi
  40.  
  41. ##  Make an unmodified copy of all files.
  42. for I in ${CONTROLLED} ${PLAIN}; do
  43.     rm -f bak.${I}
  44.     cp ${I} bak.${I}
  45. done
  46.  
  47. ##  Make sure we can write all non-controlled files.
  48. test ! -z "${PLAIN}" && chmod u+w,g+w ${PLAIN}
  49.  
  50. ##  Make the list of files, run config over it.
  51. LISTOFFILES=../${BASEDIRNAME}/files.$$
  52. for I in ${PLAIN} ${CONTROLLED} ; do
  53.     echo ../${BASEDIRNAME}/${I}
  54. done >${LISTOFFILES}
  55. ( cd ../config; make quiet FILE=${LISTOFFILES} )
  56. rm -f ${LISTOFFILES}
  57.  
  58. # check which files we really changed
  59. for I in ${CONTROLLED} ${PLAIN} ; do
  60.     if cmp -s ${I} bak.${I}; then
  61.     ##  No change was made, restore things.
  62.     case ${MODE} in
  63.     sccs)
  64.         test -f SCCS/s.${I} && sccs unedit ${I}
  65.         ;;
  66.     rcs)
  67.         test -f $RCS/${I},v && rcs -q -u ${I} && ci -u -q -f ${I}
  68.         ;;
  69.     esac
  70.     else
  71.     ##  Check files back into source control, if we have to.
  72.     case ${MODE} in
  73.     rcs)
  74.         echo 'Ran subst from Makefile' | ci -u -q -f ${I}
  75.         ;;
  76.     sccs)
  77.         echo 'Ran subst from Makefile' | sccs delget -s ${I}
  78.         ;;
  79.     esac
  80.     fi
  81.     rm -f bak.${I}
  82. done
  83.  
  84. exit 0
  85.